<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const arrSimpleNumber = [1, 2, 3, 4]
      const arrObecjt = [
        {
          id: 1,
          uname: 'Axe',
        },
        {
          id: 2,
          uname: 'boom',
        },
        {
          id: 3,
          uname: 'Cc',
        },
      ]

      //forEach for循环的加强版
      //   arrSimpleNumber.forEach((item, index, array) => {
      //     console.log(item)
      //     console.log(index)
      //   })
      //   arrObecjt.forEach((item, index, array) => {
      //     console.log(item)
      //     console.log(index)
      //   })

      // map 迭代数组，映射关系 处理完数据以后返回一个新数组，不对原数组进行修改

      //   const newArr = arrSimpleNumber.map((item) => {
      //     return (item = item + 1)
      //   })

      //   console.log(newArr)

      //filter 筛选数组，符合条件的留下，不符合条件的去掉,不对原数组进行修改，返回一个新数组
      //   const newArr = arrSimpleNumber.filter((item) => {
      //     return item > 2
      //   })
      //   const newArr = arrObecjt.filter((item) => {
      //     return item.id > 2
      //   })
      //   console.log(newArr)

      //reduce 累加，合并数组，累加字符串

      //   arrSimpleNumber.reduce((prev, item) => {
      //     return prev + item
      //   }, 0)
      //   const newData = arrObecjt.reduce((prev, item) => prev + item.id, 0)

      //   console.log(newData)

      //find，findIndex,includes

      //   const newData = arrObecjt.find((item) => {
      //     return item.id === 4
      //   })
      //   const index = arrObecjt.findIndex((item) => {
      //     return item.id === 2
      //   })

      //   console.log(index !== -1)

      //sort 排序，看回调函数的返回值是不是大于等于0

      //   const newArr = arrObecjt.sort((a, b) => {
      //     return a.uname.toUpperCase() >= b.uname.toUpperCase() ? -1 : 1
      //   })

      //   console.log(newArr)

      //every,some
      //every 的要求是全对
      // const flag = arrSimpleNumber.every((item) => {
      //   return item > 1
      // })

      // console.log(flag)

      function myInstanceOf(left, right) {
        let lp = left.__proto__

        const rp = right.prototype

        while (lp) {
          if (lp === rp) {
            return true
          }
          lp = lp.__proto__
        }

        return false
      }
    </script>
  </body>
</html>
